In response to our initial meeting with our client and after reviewing the ''Problem Description'', we have put together a brief specification stating the requirements for the software at three levels which have been agreed by our client. The levels can be considered as versions as they will be implemented in this way (i.e. Minimum - version 1, Realistic Best -  version 2 and Ideal - version3 \footnote{It should be noted that due to the nature of creating a solution there are likely to be intermediate sub-versions e.g. 1.2, which will be used solely in the repository.}). These requirements will be used as a basis for the design of the respective versions and the designs will be created with these requirements in mind.

\subsection{Minimum - v1}

The requirements listed below are the minimum requirements to make the software work which does not include extra functionality desired by our client. This will be the version 1 of our prototype and we will use this as a base to build from. 
Furthermore, the creation of different versions with the intent to expand on previous versions will allow for continuity between languages and eliminating the need to 'start from scratch'.

\begin{itemize}
	\item Contains several recipes in a database.
	\item Has a Web Interface.
	\item Recipes are searchable by ingredients (greater than 3 ingredients).

\end{itemize}

\subsection{Realistic Best - v2}

The requirements below are what we have identified as the most realistic outcome of the software within the time constraints. This would meet all the minimum requirements outlined by the client and some desirable ones as well. This will essentially be an expanded/upgraded version 1.

\begin{itemize}
	\item Has a database of around 900 recipes. 
	\item Has a clean, attractive web interface.
	\item Recipes are searchable by combinations of ingredients.
	\item Has user accounts.
	\item Allows users to rate recipes.
	\item Gives recipe recommendations based on past ratings.
\end{itemize}

\subsection{Ideal - v3}

Below are the requirements for the software if it were to be the ideal solution to the problem. This list includes existing requirements from v1 and v2 as well. Note that it is likely that only few of these requirements will be implemented in the final version. 

\begin{itemize}
	\item Has a very large, automatically updated and maintained database of recipes.
	\item Has a clean, attractive and user-friendly web interface.
	\item Has a mobile device optimised interface and an iPhone application.
	\item Recipes are searchable by combinations of ingredients.
	\item Recipes are searchable by other tags: 'vegetarian', 'italian', 'low fat' etc.
	\item Has a full user system with profiles and user-uploaded recipes.
	\item Supports social media functions.
	\item Allows users to rate, tag and commment on recipes.
	\item Gives recipe recommendations based on past ratings and accumulated data from the entire user base.
	\item Gives recipe recommendations for several users i.e. 'A recipe that Alice and Bob both like'.

\end{itemize}
